home *** CD-ROM | disk | FTP | other *** search
- '$DEFINE DEBUG ''Define for script development/debugging
- '$INCLUDE 'setupapi.inc'
- '$INCLUDE 'msdetect.inc'
- ''Dialog ID's
- CONST WELCOME = 100
- CONST ASKQUIT = 200
- CONST DESTPATH = 300
- CONST EXITFAILURE = 400
- CONST EXITQUIT = 600
- CONST EXITSUCCESS = 700
- CONST OPTIONS = 800
- CONST APPHELP = 900
- CONST OPTIONIFACE = 1000
- CONST OPTIONSCSI = 1100
- CONST OPTIONPARLLEL = 1200
- CONST OPTIONINSTALL = 1400
- CONST OPTIHELP = 1700
- CONST OPTNHELP = 1800
- CONST OPTSHELP = 2000
- CONST OPTIONSCANID = 2100
- CONST OPTPHELP = 2200
- CONST DESTPHELP = 2300
- CONST WELCOMES = 2400
- CONST WELCOMEP = 2600
- CONST BADID = 2700
- CONST WELCOMEA = 2800
- CONST DDOSHELP = 3200
- CONST DDOSPATH = 3400
- CONST DASPIPATH = 3700
- CONST DASPIHELP = 3800
- CONST BADFILELOC = 4000
- CONST BADPATH = 6400
- ''Bitmap ID
- CONST LOGO = 1
- GLOBAL SRCASPI$ ''Default source directory.
- GLOBAL DESTDOS$ ''Default destination directory.
- GLOBAL DESTWIN$ ''Default destination directory.
- GLOBAL DESTTWN$ ''Default destination directory.
- GLOBAL BAKFILE$ ''Backup Configuration Filename.
- GLOBAL CFGFILE$ ''Configuration Filename.
- GLOBAL OPTCUR$ ''Option selection from option dialog.
- GLOBAL OPTFACE$ ''Option selection from option interface dialog.
- GLOBAL OPTSCSI$ ''Option selection from SCSI option dialog.
- GLOBAL OPTSCID$ ''Option selection from SCSI option dialog.
- GLOBAL OPTPRLL$ ''Option selection from Parallel option dialog.
- GLOBAL OPTNSTL$ ''Option selection from Install option dialog.
- GLOBAL ADDSLSH$ ''Optional path requirement due to ASPI disk search.
- GLOBAL VERSION% ''Windows Minor version number
- DECLARE SUB Install
- DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
- INIT:
- CUIDLL$ = "mscuistf.dll" ''Custom user interface dll
- HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure
- SetBitmap CUIDLL$, LOGO
- SetTitle "Epson Scanner Setup Program"
- SetAbout "Epson TWAIN Setup Program","⌐ Copyright 1992-93, Seiko Epson Corporation"
- szInf$ = GetSymbolValue("STF_SRCINFPATH")
- IF szInf$ = "" THEN
- szInf$ = GetSymbolValue("STF_CWDDIR") + "ESTWAIN.INF"
- END IF
- ReadInfFile szInf$
- OPTSCID$ ="2"
- OPTCUR$ = "1"
- OPTPRLL$ = "2"
- WinLocation$ = GetWindowsDir
- DESTWIN$ = WinLocation$
- DESTDOS$ = "C:\"
- SRCASPI$ = "A:\"
- '$IFDEF DEBUG
- i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal
- WinDrive$ = MID$(GetWindowsDir, 1, 1)
- IF IsDriveValid(WinDrive$) = 0 THEN
- i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
- GOTO QUIT
- END IF
- '$ENDIF ''DEBUG
- WELCOME:
- sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
- IF sz$ = "CONTINUE" THEN
- UIPop 1
- ELSE
- GOSUB ASKQUIT
- GOTO WELCOME
- END IF
- OPTIONI:
- SetSymbolValue "RadioDefault", OPTNSTL$
- OPTLI:
- sz$ = UIStartDlg(CUIDLL$, OPTIONINSTALL, "FRadioDlgProc", OPTNHELP, HELPPROC$)
- OPTNSTL$ = GetSymbolValue("ButtonChecked")
- IF sz$ = "CONTINUE" THEN
- UIPop(1)
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO OPTLI
- ELSE
- GOSUB ASKQUIT
- GOTO OPTIONI
- END IF
- OPTION1:
- SetSymbolValue "RadioDefault", OPTFACE$
- OPTL1:
- sz$ = UIStartDlg(CUIDLL$, OPTIONIFACE, "FRadioDlgProc", OPTIHELP, HELPPROC$)
- OPTFACE$ = GetSymbolValue("ButtonChecked")
- IF sz$ = "CONTINUE" THEN
- UIPop(1)
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO OPTL1
- ELSE
- GOSUB ASKQUIT
- GOTO OPTION1
- END IF
- IF OPTFACE$ = "2" THEN
- GOTO OPTION3
- END IF
- OPTION2:
- SetSymbolValue "RadioDefault", OPTSCSI$
- OPTL2:
- sz$ = UIStartDlg(CUIDLL$, OPTIONSCSI, "FRadioDlgProc", OPTSHELP, HELPPROC$)
- OPTSCSI$ = GetSymbolValue("ButtonChecked")
- IF sz$ = "CONTINUE" THEN
- UIPop(1)
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO OPTL2
- ELSE
- GOSUB ASKQUIT
- GOTO OPTION2
- END IF
- GETSCSIID:
- SetSymbolValue "EditTextIn", OPTSCID$
- SetSymbolValue "EditFocus", "END"
- GETSCSIID1:
- sz$ = UIStartDlg(CUIDLL$, OPTIONSCANID, "FEditDlgProc", APPHELP, HELPPROC$)
- OPTSCID$ = GetSymbolValue("EditTextOut")
- IF sz$ = "CONTINUE" THEN
- IF ASC(OPTSCID$) < 49 THEN
- GOSUB BADID
- GOTO GETSCSIID1
- ELSEIF ASC(OPTSCID$) > 55 THEN
- GOSUB BADID
- GOTO GETSCSIID1
- END IF
- UIPop 1
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO GETSCSIID1
- ELSEIF sz$ = "BACK" THEN
- UIPop 1
- GOTO OPTIONI
- ELSE
- GOSUB ASKQUIT
- GOTO GETSCSIID
- END IF
- GOTO OPTEND
- OPTION3:
- SetSymbolValue "RadioDefault", OPTPRLL$
- OPTL3:
- sz$ = UIStartDlg(CUIDLL$, OPTIONPARLLEL, "FRadioDlgProc", OPTPHELP, HELPPROC$)
- OPTPRLL$ = GetSymbolValue("ButtonChecked")
- IF sz$ = "CONTINUE" THEN
- UIPop(1)
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO OPTL3
- ELSE
- GOSUB ASKQUIT
- GOTO OPTION3
- END IF
- OPTEND:
- GETDOS:
- SetSymbolValue "EditTextIn", DESTDOS$
- SetSymbolValue "EditFocus", "END"
- GETDOS1:
- sz$ = UIStartDlg(CUIDLL$, DDOSPATH, "FEditDlgProc", DDOSHELP, HELPPROC$)
- DESTDOS$ = MID$(GetSymbolValue("EditTextOut"),1,3)
- IF sz$ = "CONTINUE" THEN
- IF IsDirWritable(DESTDOS$) = 0 THEN
- GOSUB BADPATH
- GOTO GETDOS1
- END IF
- UIPop 1
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO GETDOS1
- ELSEIF sz$ = "BACK" THEN
- UIPop 1
- GOTO OPTIONI
- ELSE
- GOSUB ASKQUIT
- GOTO GETDOS
- END IF
- GETPATH:
- SetSymbolValue "EditTextIn", DESTWIN$
- SetSymbolValue "EditFocus", "END"
- GETPATHL1:
- sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", DESTPHELP, HELPPROC$)
- DESTWIN$ = GetSymbolValue("EditTextOut")
- IF sz$ = "CONTINUE" THEN
- IF IsDirWritable(DESTWIN$) = 0 THEN
- GOSUB BADPATH
- GOTO GETPATHL1
- END IF
- UIPop 1
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO GETPATHL1
- ELSEIF sz$ = "BACK" THEN
- UIPop 1
- GOTO OPTIONI
- ELSE
- GOSUB ASKQUIT
- GOTO GETPATH
- END IF
- DESTTWN$ = DESTWIN$+"TWAIN\"
- IF OPTFACE$ = "1" THEN
- IF OPTSCSI$ = "1" THEN
- GETASPI:
- SetSymbolValue "EditTextIn", SRCASPI$
- SetSymbolValue "EditFocus", "END"
- GETASPI1:
- sz$ = UIStartDlg(CUIDLL$, DASPIPATH, "FEditDlgProc", DASPIHELP, HELPPROC$)
- SRCASPI$ = GetSymbolValue("EditTextOut")
- IF sz$ = "CONTINUE" THEN
- IF MID$(SRCASPI$,LEN(RTRIM$(SRCASPI$)),1) = "\" THEN
- ADDSLSH$ = ""
- ELSE
- ADDSLSH$ = "\"
- END IF
- IF (EXISTS (SRCASPI$+ADDSLSH$+"ASPI2DOS.SYS")) THEN
- ELSE
- GOSUB BADFILE
- GOTO GETASPI1
- END IF
- UIPop 1
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO GETASPI1
- ELSEIF sz$ = "BACK" THEN
- UIPop 1
- GOTO OPTIONI
- ELSE
- GOSUB ASKQUIT
- GOTO GETASPI
- END IF
- IF (EXISTS (DESTDOS$+"ASPI2DOS.SYS")) THEN
- ELSE
- CopyFile SRCASPI$+ADDSLSH$+"ASPI2DOS.SYS",DESTDOS$+"ASPI2DOS.SYS",cmoOverwrite,0
- END IF
- END IF
- END IF
- Install
- QUIT:
- ON ERROR GOTO ERRQUIT
- IF ERR = 0 THEN
- dlg% = EXITSUCCESS
- ELSEIF ERR = STFQUIT THEN
- dlg% = EXITQUIT
- ELSE
- dlg% = EXITFAILURE
- END IF
- QUITL1:
- sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO QUITL1
- END IF
- UIPop 1
- VERSION% = GetWindowsMinorVersion()
- IF (VERSION% < 10) THEN
- IF (EXISTS (DESTWIN$+"VER.DLL")) THEN
- RemoveFile DESTWIN$+"VER.DLL",cmoNone
- END IF
- IF (EXISTS (DESTWIN$+"MSCUISTF.DLL")) THEN
- RemoveFile DESTWIN$+"MSCUISTF.DLL",cmoNone
- END IF
- END IF
- END
- ERRQUIT:
- i% = DoMsgBox("Setup sources were corrupted, call Customer Service!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
- END
- BADPATH:
- sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO BADPATH
- END IF
- UIPop 1
- RETURN
- BADFILE:
- sz$ = UIStartDlg(CUIDLL$, BADFILELOC, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO BADFILE
- END IF
- UIPop 1
- RETURN
- BADID:
- sz$ = UIStartDlg(CUIDLL$, BADID, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO BADID
- END IF
- UIPop 1
- RETURN
- ASKQUIT:
- sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
- IF sz$ = "EXIT" THEN
- UIPopAll
- ERROR STFQUIT
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO ASKQUIT
- ELSE
- UIPop 1
- END IF
- RETURN
- SUB Install STATIC
- SrcDir$ = GetSymbolValue("STF_SRCDIR")
- DESTTWN$ = DESTWIN$+"TWAIN\"
- CreateDir DESTDOS$, cmoNone
- CreateDir DESTWIN$, cmoNone
- CreateDir DESTTWN$, cmoNone
- VERSION% = GetWindowsMinorVersion()
- IF (VERSION% < 10) THEN
- IF (EXISTS (DESTWIN$+"VER.DLL")) THEN
- ELSE
- CopyFile SrcDir$+"VER.DLL",DESTWIN$+"VER.DLL",cmoOverwrite,0
- END IF
- IF (EXISTS (DESTWIN$+"MSCUISTF.DLL")) THEN
- ELSE
- CopyFile SrcDir$+"MSCUISTF.DLL",DESTWIN$+"MSCUISTF.DLL",cmoOverwrite,0
- END IF
- END IF
- IF OPTPRLL$ = "3" THEN
- OPTPRLL$="0"
- END IF
- IF OPTNSTL$ = "1" THEN
- CHDIR DESTDOS$
- IF (EXISTS ("CONFIG.SYS")) THEN
- IF (EXISTS ("CONFIG.BAK")) THEN
- KILL "CONFIG.BAK"
- END IF
- NAME "CONFIG.SYS" AS "CONFIG.BAK"
- ELSE
- IF (EXISTS ("CONFIG.BAK")) THEN
- KILL "CONFIG.BAK"
- END IF
- OPEN DESTDOS$+"CONFIG.BAK" FOR APPEND AS #2
- PRINT #2, "REM This line Added by TWAIN SETUP DUE TO NON-EXISTENT CONFIG.SYS"
- CLOSE #2
- END IF
- OPEN DESTDOS$+"CONFIG.BAK" FOR INPUT AS #1
- OPEN DESTDOS$+"CONFIG.SYS" FOR APPEND AS #2
- WHILE EOF(1)=FALSE
- LINE INPUT #1, CONFIG_LINE$
- CONFIG_LINE$=UCASE$(CONFIG_LINE$)
- IF OPTFACE$ = "1" THEN
- IF INSTR(CONFIG_LINE$,"ASPI2DOS.SYS") THEN
- IF OPTSCSI$ = "1" THEN
- ELSE
- PRINT #2, CONFIG_LINE$
- END IF
- ELSEIF INSTR(CONFIG_LINE$,"EPSN.SYS") THEN
- CONFIG_LINE$=""
- ELSE
- PRINT #2, CONFIG_LINE$
- END IF
- ELSE
- IF INSTR(CONFIG_LINE$,"EPSN.SYS") THEN
- CONFIG_LINE$=""
- ELSE
- PRINT #2, CONFIG_LINE$
- END IF
- END IF
- WEND
- IF OPTFACE$ = "1" THEN
- IF OPTSCSI$ = "1" THEN
- CONFIG_LINE$="DEVICE="+DESTDOS$+"ASPI2DOS.SYS /D /Z"
- PRINT #2, CONFIG_LINE$
- END IF
- CONFIG_LINE$="DEVICE="+DESTDOS$+"EPSN.SYS 3 /i79 /S"+MID$(OPTSCID$,1,1)
- PRINT #2, CONFIG_LINE$
- ELSE
- CONFIG_LINE$="DEVICE="+DESTDOS$+"EPSN.SYS /i79 "+OPTPRLL$
- PRINT #2, CONFIG_LINE$
- END IF
- CLOSE #1,#2
- ELSE
- CHDIR DESTDOS$
- IF (EXISTS ("CONFIG.ADD")) THEN
- KILL "CONFIG.ADD"
- END IF
- OPEN "CONFIG.ADD" FOR APPEND AS #2
- IF OPTFACE$ = "1" THEN
- IF OPTSCSI$ = "1" THEN
- CONFIG_LINE$="DEVICE="+DESTDOS$+"ASPI2DOS.SYS /D /Z"
- PRINT #2, CONFIG_LINE$
- END IF
- CONFIG_LINE$="DEVICE="+DESTDOS$+"EPSN.SYS 3 /i79 /S"+MID$(OPTSCID$,1,1)
- PRINT #2, CONFIG_LINE$
- ELSE
- CONFIG_LINE$="DEVICE="+DESTDOS$+"EPSN.SYS /i79 "+OPTPRLL$
- PRINT #2, CONFIG_LINE$
- END IF
- CLOSE #2
- END IF
- AddSectionFilesToCopyList "DOSFILES", SrcDir$, DESTDOS$
- AddSectionFilesToCopyList "WINFILES", SrcDir$, DESTWIN$
- AddSectionFilesToCopyList "TWNFILES", SrcDir$, DESTTWN$
- CopyFilesInCopyList
- CreateProgmanGroup "EPSON Scanner", "", cmoNone
- ShowProgmanGroup "EPSON Scanner", 1, cmoNone
- CreateProgmanItem "EPSON Scanner", "READ ME", MakePath(DESTTWN$,"README.TXT"), "", cmoOverwrite
- END SUB
- FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
- IF szDir$ = "" THEN
- MakePath = szFile$
- ELSEIF szFile$ = "" THEN
- MakePath = szDir$
- ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
- MakePath = szDir$ + szFile$
- ELSE
- MakePath = szDir$ + "\" + szFile$
- END IF
- END FUNCTION
-